抽象decorator模式
使用jQuery的装饰者模式
jQuery.extend()允许我们在运行时或者在随后一个点上动态地将两个或两个以上的对象(和它们的属性)一起扩展(或合并)为一个单一对象。
定义三个对象: defaults、options、settings,目的是为了装饰defaults对象,将options的额外功能附加到defaults上。
var decoratorApp = decoratorApp || {};
//定义要使用的对象
decoratorApp = {
defaults: {
validate: false,
limit: 5,
name: "foo",
welcome: function(){
console.log("welcome!");
}
},
options:{
validate: true,
name: "bar",
helloWorld: function(){
console.log("hello,world");
}
},
settings: {},
printObj: function(obj){
var arr = [],
next;
$.each(obj,function(key,val){
next = key + ":";
next += $.isPlainObject(val) ? printObj(val) : val;
arr.push(next);
});
return "{" + arr.join(",") + "}";
}
};
decoratorApp.settings = $.extend({},decoratorApp.defaults,decoratorApp.options);
//打印
decoratorApp.printObj(decoratorApp.settings);
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。